import request from './request'

/**
 * 获取服务列表
 * @param {Object} params
 * @param {number} params.pageNum - 页码
 * @param {number} params.pageSize - 每页大小
 * @param {string} params.category - 服务分类（可选）
 * @returns {Promise}
 */
export function getServiceList(params) {
  return request({
    url: '/service/list',
    method: 'get',
    params
  })
}

/**
 * 获取服务详情
 * @param {number} id - 服务ID
 * @returns {Promise}
 */
export function getServiceDetail(id) {
  return request({
    url: `/service/${id}`,
    method: 'get'
  })
}

/**
 * 创建服务预约
 * @param {Object} data
 * @param {number} data.serviceId - 服务ID
 * @param {number} data.petId - 宠物ID
 * @param {string} data.reserveDate - 预约日期
 * @param {string} data.reserveTime - 预约时间
 * @param {string} data.remark - 备注（可选）
 * @returns {Promise}
 */
export function createServiceReserve(data) {
  return request({
    url: '/service/reserve',
    method: 'post',
    data
  })
}

/**
 * 获取我的服务预约
 * @param {Object} params
 * @param {number} params.pageNum - 页码
 * @param {number} params.pageSize - 每页大小
 * @param {number} params.status - 预约状态（可选）
 * @returns {Promise}
 */
export function getMyServiceReserves(params) {
  return request({
    url: '/service/my-reserves',
    method: 'get',
    params
  })
}

/**
 * 取消服务预约
 * @param {number} id - 预约ID
 * @returns {Promise}
 */
export function cancelServiceReserve(id) {
  return request({
    url: `/service/cancel/${id}`,
    method: 'put'
  })
}

/**
 * 获取所有服务预约（管理员）
 * @param {Object} params
 * @param {number} params.pageNum - 页码
 * @param {number} params.pageSize - 每页大小
 * @param {number} params.status - 预约状态（可选）
 * @param {string} params.date - 预约日期（可选）
 * @returns {Promise}
 */
export function getServiceReserves(params) {
  return request({
    url: '/service/reserves',
    method: 'get',
    params
  })
}

/**
 * 更新服务预约状态（管理员）
 * @param {number} id - 预约ID
 * @param {number} status - 预约状态
 * @returns {Promise}
 */
export function updateServiceReserveStatus(id, status) {
  return request({
    url: `/service/reserve/status/${id}`,
    method: 'put',
    params: { status }
  })
}

/**
 * 创建服务项（管理员）
 * @param {Object} data - 服务信息
 * @returns {Promise}
 */
export function createService(data) {
  return request({
    url: '/service/create',
    method: 'post',
    data
  })
}

/**
 * 更新服务项（管理员）
 * @param {Object} data - 服务信息
 * @returns {Promise}
 */
export function updateService(data) {
  return request({
    url: '/service/update',
    method: 'put',
    data
  })
}

/**
 * 删除服务项（管理员）
 * @param {number} id - 服务ID
 * @returns {Promise}
 */
export function deleteService(id) {
  return request({
    url: `/service/${id}`,
    method: 'delete'
  })
}

// 别名导出，兼容旧代码
export const getReservationList = getMyServiceReserves

export default {
  getServiceList,
  getServiceDetail,
  createServiceReserve,
  getMyServiceReserves,
  cancelServiceReserve,
  getServiceReserves,
  updateServiceReserveStatus,
  createService,
  updateService,
  deleteService
}
